import time
from selenium import webdriver


class BasePage1:
    def __init__(self, driver=None):
        if driver is not None:
            self.driver = driver
        else:
            # 初始化 Chrome 浏览器驱动
            self.driver = webdriver.Chrome
            # 最大化浏览器窗口
            self.driver.maximize_window(self)
            # 设置隐式等待时间为 10 秒
            self.driver.implicitly_wait(10)

    # 封装行为：在文本框中输入内容
    def input(self, target, value):
        self.element_locate(target).send_keys(value)

    # 定位元素的方法
    def element_locate(self, target):
        method, value = self.convert(target)
        return self.driver.find_element(method, value)

    # 将定位字符串转换为定位方法和值
    def convert(self, target):
        method, value = target.split(',')
        return method.strip(), value.strip()

    # 点击元素的方法
    def click(self, target):
        self.element_locate(target).click()

    # 获取元素的文本内容
    def get_ele_text(self, target):
        return self.element_locate(target).text

    # 切换到指定的 iframe
    def into_frame(self, frame_name):
        self.driver.switch_to.frame(frame_name)

    # 等待指定的时间（秒）
    def wait(self, num):
        time.sleep(num)

    # 打开指定的 URL
    def open(self, url):
        self.driver.get(url)

    # 关闭浏览器
    def quit(self):
        self.driver.quit()


if __name__ == '__main__':
    # 创建 BasePage1 的实例
    bg = BasePage1()
    # 打开 CSDN 首页
    bg.open("https://localhost/ranzhi/wwww")
    # 等待 2 秒
    bg.wait(2)
    # 关闭浏览器
    bg.quit()

